package com.springboot.study.controller;

import com.alibaba.excel.EasyExcel;
import com.springboot.study.entity.ImportExcelDTO;
import com.springboot.study.listener.TianYanChaImportListener;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @Author: guodong
 * @Date: 2021/9/13 11:15
 * @Version: 1.0
 * @Description:
 */
@Slf4j
@RestController
@RequestMapping("testEventController")
public class EasyExcelImportController {

    @PostMapping("/import")
    public void importCustomerDaily(@RequestParam MultipartFile file) throws IOException {
        try {
            List<ImportExcelDTO> reqCustomerDailyImports = EasyExcel.read(file.getInputStream())
                    // 这个转换是成全局的， 所有java为string,excel为string的都会用这个转换器。
                    // 如果就想单个字段使用请使用@ExcelProperty 指定converter
                    .registerConverter(new StringConverter())
                    // 注册监听器，可以在这里校验字段
                    .registerReadListener(new TianYanChaImportListener())
                    .head(ImportExcelDTO.class)
                    .sheet()
                    .headRowNumber(0)
                    .doReadSync();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}
